#ifndef _PATH_TRACING_RENDERER_H_
#define _PATH_TRACING_RENDERER_H_

class Camera;
class Film;
class Sampler;
class OpenCLDevice;

struct scene_info_memory_t;

class PathTracingRenderer{
public:
	PathTracingRenderer(Camera* c,Film* im,Sampler* s);
	virtual void Render(const scene_info_memory_t& scene_info);
	virtual ~PathTracingRenderer();
private:
	void InitializeDeviceData(const scene_info_memory_t& scene_info);
private:
	Camera* camera_;
	Film* image_;
	Sampler* sampler_;
	OpenCLDevice* device_;
};



#endif